Skip to content

Document why Pages is off and the Doxygen deploy fails - #16

Open
zeyuyang42 wants to merge 1 commit into
mainfrom
document-pages-decision
Open

Document why Pages is off and the Doxygen deploy fails#16
zeyuyang42 wants to merge 1 commit into
mainfrom
document-pages-decision

Conversation

@zeyuyang42

Copy link
Copy Markdown
Collaborator

Documentation only. No behaviour change — the Doxygen deploy still fails, deliberately.

Why

Deploy Doxygen documentation fails on every push to main touching core/include/** or docs/**. Without a written reason that reads as a neglected build. It is a decision: enabling Pages publishes a page under the organization's website, which is the org owner's call to make and not something to land as a side effect of a CI change.

What's here

docs/design/github-pages-deployment.md — the decision, what actually fails, and how to enable it once approved.

Worth stating plainly, because the red X overstates the damage: only the deploy fails. Generate documentation succeeds — the HTML is built and then discarded. Running doxygen docs/Doxyfile locally produces the full output under docs/build/html.

The doc also records why no workflow-side fix exists, so this isn't attempted a third time:

  1. Pages has never been enabled — GET /repos/ringbuffer-org/Zerr/pages404.
  2. actions/configure-pages defaults to enablement: false, which only queries for a site → Get Pages site failed / HttpError: Not Found.
  3. enablement: true fails too — creating a site needs admin repo permission, and administration is not a scope a workflow's permissions: block can grant to GITHUB_TOKENCreate Pages site failed / HttpError: Resource not accessible by integration.

Both failures are cited to their runs. The token category is simply wrong for the operation; no configuration change fixes it.

Correction to PR #15

The comment I added above Configure Pages claimed enablement: true "keeps the deploy self-contained instead of depending on someone having clicked through repository settings." That was written before the attempt, and the run disproved it. It now says the step is expected to fail and points at the design doc.

The enablement: true parameter itself stays. It is inert but harmless — once a site exists the action's initial Get succeeds and Create is never reached — so keeping it means no edit is needed here if Pages is switched on later.

When you're ready to enable it

Either Settings → Pages → Source: GitHub Actions, or gh api -X POST repos/ringbuffer-org/Zerr/pages -f build_type=workflow with an admin token. The workflow passes as written.

One gotcha captured in the doc: its push trigger is filtered to core/include/** and docs/**, so a settings-only change won't re-trigger it — dispatch manually to confirm.

🤖 Generated with Claude Code

The `Deploy Doxygen documentation` job fails on every push to main touching
core/include/** or docs/**, which reads as neglect unless the reason is written
down. It is deliberate: enabling Pages publishes a page under the organization's
website, and that is the org owner's decision to make rather than something to
land as a side effect of a CI change.

docs/design/github-pages-deployment.md records the decision, what actually
fails (only the deploy -- Doxygen generation itself succeeds and the HTML is
built, then discarded), and the two ways to enable it once approved.

It also records why no workflow-side fix exists, so this is not attempted a
third time: `actions/configure-pages` with the default enablement: false only
queries for a site that has never existed, and enablement: true cannot create
one either, because POST /repos/{owner}/{repo}/pages needs admin permission and
`administration` is not a scope `permissions:` can grant to GITHUB_TOKEN. Both
failures are cited to their runs.

The comment above Configure Pages claimed enablement: true "keeps the deploy
self-contained instead of depending on someone having clicked through repository
settings". That was written before the attempt and is false; corrected to say
the step is expected to fail and to point at the design doc. The parameter
itself stays so the file needs no edit if Pages is enabled later.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant